package com.ssy.lingxi.order.model.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Map;

/**
 * 上游供应商会员商品DTO
 * @author 万宁
 * @version 2.0.0
 * @date 2021-09-13
 */
public class SupplyProductDTO implements Serializable {
    private static final long serialVersionUID = -5432820438065335588L;

    /**
     * 供应商订单商品的SkuId（商品服务以供应商商品的SkuId做查询条件，所以这里要定义供应商商品的SkuId，用于对查询结果做判断筛选）
     */
    private Long vendorSkuId;

    /**
     * 供应商订单商品的购买数量
     */
    private BigDecimal quantity;

    /**
     * 上游供应商会员Id
     */
    private Long supplyMemberId;

    /**
     * 上游供应商会员角色Id
     */
    private Long supplyRoleId;

    /**
     * 上游供应商会员名称
     */
    private String supplyMemberName;

    /**
     * 商品Id
     */
    private Long productId;

    /**
     * 商品编码
     */
    private String productNo;

    /**
     * 商品SkuId
     */
    private Long skuId;

    /**
     * 商品名称
     */
    private String name;

    /**
     * 商品品类
     */
    private String category;

    /**
     * 商品品牌
     */
    private String brand;

    /**
     * 计价单位
     */
    private String unit;

    /**
     * 商品Logo Url
     */
    private String logo;

    /**
     * 商品规格
     */
    private String spec;

    /**
     * 商品阶梯价格
     */
    private Map<String,Double> prices;

    /**
     * 商品价格（需要根据购买数量、阶梯价格进行匹配计算）
     */
    private BigDecimal price;

    /**
     * 商品价格类型，1-现货价格，2-询价价格，3-积分兑换，4-赠品
     */
    private Integer priceType;

    /**
     * 会员折扣（百分比的分子部分）
     */
    private BigDecimal discount;

    /**
     * 供方库存
     */
    private BigDecimal stock;

    /**
     * 是否含税（true-含税，false-不含税）
     */
    private Boolean tax;

    /**
     * 税率（百分比的分子部分）
     */
    private BigDecimal taxRate;

    /**
     * 配送方式：1-物流，2-自提，3-无需配送
     */
    private Integer deliverType;

    /**
     * 运费类型，1-卖家承担，2-买家承担
     */
    private Integer freightType;

    /**
     * 商品重量
     */
    private BigDecimal weight;

    /**
     * 运费模板Id
     */
    private Long logisticsTemplateId;

    /**
     * 发货地址Id
     */
    private Long addressId;

    /**
     * 自提地址
     */
    private String address;

    /**
     * 接收人
     */
    private String receiver;

    /**
     * 接收人电话
     */
    private String phone;

    public Long getVendorSkuId() {
        return vendorSkuId;
    }

    public void setVendorSkuId(Long vendorSkuId) {
        this.vendorSkuId = vendorSkuId;
    }

    public BigDecimal getQuantity() {
        return quantity;
    }

    public void setQuantity(BigDecimal quantity) {
        this.quantity = quantity;
    }

    public Long getSupplyMemberId() {
        return supplyMemberId;
    }

    public void setSupplyMemberId(Long supplyMemberId) {
        this.supplyMemberId = supplyMemberId;
    }

    public Long getSupplyRoleId() {
        return supplyRoleId;
    }

    public void setSupplyRoleId(Long supplyRoleId) {
        this.supplyRoleId = supplyRoleId;
    }

    public String getSupplyMemberName() {
        return supplyMemberName;
    }

    public void setSupplyMemberName(String supplyMemberName) {
        this.supplyMemberName = supplyMemberName;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductNo() {
        return productNo;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getSpec() {
        return spec;
    }

    public void setSpec(String spec) {
        this.spec = spec;
    }

    public Map<String, Double> getPrices() {
        return prices;
    }

    public void setPrices(Map<String, Double> prices) {
        this.prices = prices;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Integer getPriceType() {
        return priceType;
    }

    public void setPriceType(Integer priceType) {
        this.priceType = priceType;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public BigDecimal getStock() {
        return stock;
    }

    public void setStock(BigDecimal stock) {
        this.stock = stock;
    }

    public Boolean getTax() {
        return tax;
    }

    public void setTax(Boolean tax) {
        this.tax = tax;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public Integer getDeliverType() {
        return deliverType;
    }

    public void setDeliverType(Integer deliverType) {
        this.deliverType = deliverType;
    }

    public Integer getFreightType() {
        return freightType;
    }

    public void setFreightType(Integer freightType) {
        this.freightType = freightType;
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public Long getLogisticsTemplateId() {
        return logisticsTemplateId;
    }

    public void setLogisticsTemplateId(Long logisticsTemplateId) {
        this.logisticsTemplateId = logisticsTemplateId;
    }

    public Long getAddressId() {
        return addressId;
    }

    public void setAddressId(Long addressId) {
        this.addressId = addressId;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}
